﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using acessaDB;
using Frame;
using System.Data;
using System.Configuration;
using FirebirdSql.Data.FirebirdClient;
using Estrutura;


namespace Banco
{

    public class BD_Evento
    {
        #region variaveis_globais

        acessaDB.conectaDBFireBird fireBird = new conectaDBFireBird();
        string conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionLocal"];
        string usuario = string.Empty;

        #endregion

        #region construtor

        public BD_Evento()
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
        }
        public BD_Evento(string usu_Login)
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
            usuario = usu_Login;
        }

        #endregion

        #region metodos

        public DataSet _retorna_Evento(
                                                string CTM_EVENTO_OPERCAO_ID,
                                                string CTM_CAD_INSPECAO_ID,
                                                string CTM_CAD_DIRETIVA_ID,
                                                string CVE_SEQ_EVENTO,
                                                string CVE_STATUS,
                                                string CVE_DATA_INCLUSAO,
                                                string CTM_EVENTO_ID,
                                                string EQUIPAMENTO_ID,
                                                string EQUIPAMENTO_PAI_ID,
                                                string PLANO_MANUTENCAO_ID,
                                                string CVE_DATA,
                                                string CVE_INSTALACAO,
                                                string CVE_INST_SATUS,
                                                string CVE_USUARIO_INS,
                                                string CVE_USUARIO_UPD
                                                )
        {

            if (string.IsNullOrEmpty(CTM_EVENTO_OPERCAO_ID)) CTM_EVENTO_OPERCAO_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_CAD_INSPECAO_ID)) CTM_CAD_INSPECAO_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_CAD_DIRETIVA_ID)) CTM_CAD_DIRETIVA_ID = "'0'";
            if (string.IsNullOrEmpty(CVE_SEQ_EVENTO)) CVE_SEQ_EVENTO = "'0'";
            if (string.IsNullOrEmpty(CVE_STATUS)) CVE_STATUS = "''";
            if (string.IsNullOrEmpty(CVE_DATA_INCLUSAO)) CVE_DATA_INCLUSAO = "''";
            if (string.IsNullOrEmpty(CTM_EVENTO_ID)) CTM_EVENTO_ID = "'0'";
            if (string.IsNullOrEmpty(EQUIPAMENTO_ID)) EQUIPAMENTO_ID = "'0'";
            if (string.IsNullOrEmpty(EQUIPAMENTO_PAI_ID)) EQUIPAMENTO_PAI_ID = "'0'";
            if (string.IsNullOrEmpty(PLANO_MANUTENCAO_ID)) PLANO_MANUTENCAO_ID = "'0'";
            if (string.IsNullOrEmpty(CVE_DATA)) CVE_DATA = Util.retonarAspas(Util.formataData(System.DateTime.Now.ToString()));
            if (string.IsNullOrEmpty(CVE_INSTALACAO)) CVE_INSTALACAO = "''";
            if (string.IsNullOrEmpty(CVE_INST_SATUS)) CVE_INST_SATUS = "''";
            if (string.IsNullOrEmpty(CVE_USUARIO_INS)) CVE_USUARIO_INS = "''";
            if (string.IsNullOrEmpty(CVE_USUARIO_UPD)) CVE_USUARIO_UPD = "''";

            string sql = "SELECT " +
                                  "CTM_EVENTO.CTM_EVENTO_OPERCAO_ID, " +
                                  "CTM_EVENTO.CTM_CAD_INSPECAO_ID, " +
                                  "CTM_EVENTO.CTM_CAD_DIRETIVA_ID, " +
                                  "CTM_EVENTO.CVE_SEQ_EVENTO, " +
                                  "CTM_EVENTO.CVE_STATUS, " +
                                  "CTM_EVENTO.CVE_DATA_INCLUSAO, " +
                                  "CTM_EVENTO.CTM_EVENTO_ID, " +
                                  "CTM_EVENTO.EQUIPAMENTO_ID, " +
                                  "CTM_EVENTO.EQUIPAMENTO_PAI_ID, " +
                                  "CTM_EVENTO.PLANO_MANUTENCAO_ID, " +
                                  "CTM_EVENTO.CVE_DATA, " +
                                  "CTM_EVENTO.CVE_INSTALACAO, " +
                                  "CTM_EVENTO.CVE_INST_SATUS, " +
                                  "CTM_EVENTO.CVE_USUARIO_INS, " +
                                  "CTM_EVENTO.CVE_USUARIO_UPD " +
                            "FROM CTM_EVENTO " +
                            "LEFT JOIN CTM_EVENTO_OPERCAO ON CTM_EVENTO_OPERCAO.CTM_EVENTO_OPERCAO_ID = CTM_EVENTO.CTM_EVENTO_OPERCAO_ID " +
                            "WHERE " +
                            "      (CTM_EVENTO.CTM_EVENTO_OPERCAO_ID           = " + CTM_EVENTO_OPERCAO_ID + "  OR " + CTM_EVENTO_OPERCAO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.CTM_CAD_INSPECAO_ID             = " + CTM_CAD_INSPECAO_ID + "  OR " + CTM_CAD_INSPECAO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.CTM_CAD_DIRETIVA_ID             = " + CTM_CAD_DIRETIVA_ID + "  OR " + CTM_CAD_DIRETIVA_ID + " = '0') AND " +
                            "      (CTM_EVENTO.CVE_SEQ_EVENTO                  = " + CVE_SEQ_EVENTO + "  OR " + CVE_SEQ_EVENTO + " = '0') AND " +
                            "      (CTM_EVENTO.CVE_STATUS                      = " + CVE_STATUS + "  OR " + CVE_STATUS + " = '') AND " +
                            "      (CTM_EVENTO.CVE_DATA_INCLUSAO               = " + CVE_DATA_INCLUSAO + "  OR " + CVE_DATA_INCLUSAO + " = '') AND " +
                            "      (CTM_EVENTO.CTM_EVENTO_ID                   = " + CTM_EVENTO_ID + "  OR " + CTM_EVENTO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.EQUIPAMENTO_ID                  = " + EQUIPAMENTO_ID + "  OR " + EQUIPAMENTO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.EQUIPAMENTO_PAI_ID              = " + EQUIPAMENTO_PAI_ID + "  OR " + EQUIPAMENTO_PAI_ID + " = '0') AND " +
                            "      (CTM_EVENTO.PLANO_MANUTENCAO_ID             = " + PLANO_MANUTENCAO_ID + "  OR " + PLANO_MANUTENCAO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.CVE_DATA                        = " + CVE_DATA + "  OR " + CVE_DATA + " = '') AND " +
                            "      (CTM_EVENTO.CVE_INSTALACAO                  = " + CVE_INSTALACAO + "  OR " + CVE_INSTALACAO + " = '') AND " +
                            "      (CTM_EVENTO.CVE_INST_SATUS                  = " + CVE_INST_SATUS + "  OR " + CVE_INST_SATUS + " = '') AND " +
                            "      (CTM_EVENTO.CVE_USUARIO_INS                 = " + CVE_USUARIO_INS + "  OR " + CVE_USUARIO_INS + " = '') AND " +
                            "      (CTM_EVENTO.CVE_USUARIO_UPD                 = " + CVE_USUARIO_UPD + "  OR " + CVE_USUARIO_UPD + " = '') ";

            DataSet dsRetorno = fireBird.retornaDataSet(sql, conectionString);
            return dsRetorno;

        }


        public List<ES_Evento> _obter_Evento(
                                                string CTM_EVENTO_OPERCAO_ID,
                                                string CTM_CAD_INSPECAO_ID,
                                                string CTM_CAD_DIRETIVA_ID,
                                                string CVE_SEQ_EVENTO,
                                                string CVE_STATUS,
                                                string CVE_DATA_INCLUSAO,
                                                string CTM_EVENTO_ID,
                                                string EQUIPAMENTO_ID,
                                                string EQUIPAMENTO_PAI_ID,
                                                string PLANO_MANUTENCAO_ID,
                                                string CVE_DATA,
                                                string CVE_INSTALACAO,
                                                string CVE_INST_SATUS,
                                                string CVE_USUARIO_INS,
                                                string CVE_USUARIO_UPD
                                                )
        {

            if (string.IsNullOrEmpty(CTM_EVENTO_OPERCAO_ID)) CTM_EVENTO_OPERCAO_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_CAD_INSPECAO_ID)) CTM_CAD_INSPECAO_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_CAD_DIRETIVA_ID)) CTM_CAD_DIRETIVA_ID = "'0'";
            if (string.IsNullOrEmpty(CVE_SEQ_EVENTO)) CVE_SEQ_EVENTO = "'0'";
            if (string.IsNullOrEmpty(CVE_STATUS)) CVE_STATUS = "''"; else CVE_STATUS = Util.retonarAspas(CVE_STATUS + " % ");
            if (string.IsNullOrEmpty(CVE_DATA_INCLUSAO)) CVE_DATA_INCLUSAO = Util.retonarAspas(Util.formataData(System.DateTime.Now.ToString()));
            if (string.IsNullOrEmpty(CTM_EVENTO_ID)) CTM_EVENTO_ID = "'0'";
            if (string.IsNullOrEmpty(EQUIPAMENTO_ID)) EQUIPAMENTO_ID = "'0'";
            if (string.IsNullOrEmpty(EQUIPAMENTO_PAI_ID)) EQUIPAMENTO_PAI_ID = "'0'";
            if (string.IsNullOrEmpty(PLANO_MANUTENCAO_ID)) PLANO_MANUTENCAO_ID = "'0'";
            if (string.IsNullOrEmpty(CVE_DATA)) CVE_DATA = Util.retonarAspas(Util.formataData(System.DateTime.Now.ToString()));
            if (string.IsNullOrEmpty(CVE_INSTALACAO)) CVE_INSTALACAO = "''"; else CVE_INSTALACAO = Util.retonarAspas(CVE_INSTALACAO + " % ");
            if (string.IsNullOrEmpty(CVE_INST_SATUS)) CVE_INST_SATUS = "''"; else CVE_INST_SATUS = Util.retonarAspas(CVE_INST_SATUS + " % ");
            if (string.IsNullOrEmpty(CVE_USUARIO_INS)) CVE_USUARIO_INS = "''"; else CVE_USUARIO_INS = Util.retonarAspas(CVE_USUARIO_INS + " % ");
            if (string.IsNullOrEmpty(CVE_USUARIO_UPD)) CVE_USUARIO_UPD = "''"; else CVE_USUARIO_UPD = Util.retonarAspas(CVE_USUARIO_UPD + " % ");

            string sql = "SELECT " +
                                  "CTM_EVENTO.CTM_EVENTO_OPERCAO_ID, " +
                                  "CTM_EVENTO_OPERCAO.CEO_DESCRICAO, " +
                                  "CTM_EVENTO.CTM_CAD_INSPECAO_ID, " +
                                  "CTM_EVENTO.CTM_CAD_DIRETIVA_ID, " +
                                  "CTM_EVENTO.CVE_SEQ_EVENTO, " +
                                  "CTM_EVENTO.CVE_STATUS, " +
                                  "CTM_EVENTO.CVE_DATA_INCLUSAO, " +
                                  "CTM_EVENTO.CTM_EVENTO_ID, " +
                                  "CTM_EVENTO.EQUIPAMENTO_ID, " +
                                  "CTM_EVENTO.EQUIPAMENTO_PAI_ID, " +
                                  "CTM_EVENTO.CTM_PLANO_MANUTENCAO_ID, " +
                                  "CTM_PLANO_MANUTENCAO.PLM_PLANO, " +
                                  "CTM_EVENTO.CVE_DATA, " +
                                  "CTM_EVENTO.CVE_INSTALACAO, " +
                                  "CTM_EVENTO.CVE_INST_SATUS, " +
                                  "CTM_EVENTO.CVE_USUARIO_INS, " +
                                  "CTM_EVENTO.CVE_USUARIO_UPD " +
                            "FROM CTM_EVENTO " +
                            "LEFT JOIN CTM_EVENTO_OPERCAO ON CTM_EVENTO_OPERCAO.CTM_EVENTO_OPERCAO_ID = CTM_EVENTO.CTM_EVENTO_OPERCAO_ID " +
                            "LEFT JOIN CTM_PLANO_MANUTENCAO ON (CTM_PLANO_MANUTENCAO.CTM_PLANO_MANUTENCAO_ID = CTM_EVENTO.CTM_PLANO_MANUTENCAO_ID) " +
                            "WHERE " +
                            "      (CTM_EVENTO.CTM_EVENTO_OPERCAO_ID           = " + CTM_EVENTO_OPERCAO_ID + "  OR " + CTM_EVENTO_OPERCAO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.CTM_CAD_INSPECAO_ID             = " + CTM_CAD_INSPECAO_ID + "  OR " + CTM_CAD_INSPECAO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.CTM_CAD_DIRETIVA_ID             = " + CTM_CAD_DIRETIVA_ID + "  OR " + CTM_CAD_DIRETIVA_ID + " = '0') AND " +
                            "      (CTM_EVENTO.CVE_SEQ_EVENTO                  = " + CVE_SEQ_EVENTO + "  OR " + CVE_SEQ_EVENTO + " = '0') AND " +
                            "      (CTM_EVENTO.CVE_STATUS                      = " + CVE_STATUS + "  OR " + CVE_STATUS + " = '') AND " +
                            "      (CTM_EVENTO.CVE_DATA_INCLUSAO               = " + CVE_DATA_INCLUSAO + "  OR " + CVE_DATA_INCLUSAO + " = " + CVE_DATA_INCLUSAO + ") AND " +
                            "      (CTM_EVENTO.CTM_EVENTO_ID                   = " + CTM_EVENTO_ID + "  OR " + CTM_EVENTO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.EQUIPAMENTO_ID                  = " + EQUIPAMENTO_ID + "  OR " + EQUIPAMENTO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.EQUIPAMENTO_PAI_ID              = " + EQUIPAMENTO_PAI_ID + "  OR " + EQUIPAMENTO_PAI_ID + " = '0') AND " +
                            "      (CTM_EVENTO.CTM_PLANO_MANUTENCAO_ID         = " + PLANO_MANUTENCAO_ID + "  OR " + PLANO_MANUTENCAO_ID + " = '0') AND " +
                            "      (CTM_EVENTO.CVE_DATA                        = " + CVE_DATA + "  OR " + CVE_DATA + " = " + CVE_DATA + ") AND " +
                            "      (CTM_EVENTO.CVE_INSTALACAO                  = " + CVE_INSTALACAO + "  OR " + CVE_INSTALACAO + " = '') AND " +
                            "      (CTM_EVENTO.CVE_INST_SATUS                  = " + CVE_INST_SATUS + "  OR " + CVE_INST_SATUS + " = '') "+
                            " ORDER BY CTM_EVENTO.CVE_DATA DESC ";
                            /*"      (CTM_EVENTO.CVE_USUARIO_INS                 = " + CVE_USUARIO_INS + "  OR " + CVE_USUARIO_INS + " = '') AND " +
                            "      (CTM_EVENTO.CVE_USUARIO_UPD                 = " + CVE_USUARIO_UPD + "  OR " + CVE_USUARIO_UPD + " = '') "*/
            

            List<ES_Evento> lista = new List<ES_Evento>();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    ES_Evento item = new ES_Evento();
                    item.CTM_EVENTO_OPERCAO_ID = dr["CTM_EVENTO_OPERCAO_ID"].ToString();
                    item.CEO_DESCRICAO = dr["CEO_DESCRICAO"].ToString();
                    item.CTM_CAD_INSPECAO_ID = dr["CTM_CAD_INSPECAO_ID"].ToString();
                    item.CTM_CAD_DIRETIVA_ID = dr["CTM_CAD_DIRETIVA_ID"].ToString();
                    item.CVE_SEQ_EVENTO = dr["CVE_SEQ_EVENTO"].ToString();
                    item.CVE_STATUS = dr["CVE_STATUS"].ToString();
                    item.CVE_DATA_INCLUSAO = dr["CVE_DATA_INCLUSAO"].ToString();
                    item.CTM_EVENTO_ID = dr["CTM_EVENTO_ID"].ToString();
                    item.EQUIPAMENTO_ID = dr["EQUIPAMENTO_ID"].ToString();
                    item.EQUIPAMENTO_PAI_ID = dr["EQUIPAMENTO_PAI_ID"].ToString();
                    item.PLANO_MANUTENCAO_ID = dr["CTM_PLANO_MANUTENCAO_ID"].ToString();
                    item.PLM_PLANO = dr["PLM_PLANO"].ToString();
                    item.CVE_DATA = Util.formataData(dr["CVE_DATA"].ToString(),"dd/MM/yyyy");
                    item.CVE_INSTALACAO = dr["CVE_INSTALACAO"].ToString();
                    if (dr["CVE_INSTALACAO"].ToString() == "S")
                        item.CVE_INSTALACAO_BOOL = true;
                    else
                        item.CVE_INSTALACAO_BOOL = false;
                    item.CVE_INST_SATUS = dr["CVE_INST_SATUS"].ToString();
                    item.CVE_USUARIO_INS = dr["CVE_USUARIO_INS"].ToString();
                    item.CVE_USUARIO_UPD = dr["CVE_USUARIO_UPD"].ToString();
                    lista.Add(item);

                }
                return lista;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }

        public ES_Evento _obter_EventoCadstroByEventoId(string P_EVENTO_ID)
        {
            ES_Evento item = new ES_Evento();
            List<ES_Evento> lista = _obter_EventoCadstro(null,
                                                         null,
                                                         null,
                                                         null,
                                                         P_EVENTO_ID,
                                                         null);
            foreach (ES_Evento myEvento in lista)
            {
                item = myEvento;
            }
            return item;

        }

        public List<ES_Evento> _obter_EventoCadstro(string P_EQUIPAMENTO_ID,
                                                    string P_PNU_PART_NUMBER,
                                                    string P_EQU_SERIAL_NUMBER,
                                                    string P_FABRICANTE_ID,
                                                    string P_CTM_EVENTO_ID,
                                                    string P_CVE_DATA)
        {

            if (string.IsNullOrEmpty(P_EQUIPAMENTO_ID)) P_EQUIPAMENTO_ID = "0";
            if (string.IsNullOrEmpty(P_PNU_PART_NUMBER)) P_PNU_PART_NUMBER = "''"; else P_PNU_PART_NUMBER = Util.retonarAspas(P_PNU_PART_NUMBER);
            if (string.IsNullOrEmpty(P_EQU_SERIAL_NUMBER)) P_EQU_SERIAL_NUMBER = "''"; else P_EQU_SERIAL_NUMBER = Util.retonarAspas(P_EQU_SERIAL_NUMBER);
            if (string.IsNullOrEmpty(P_FABRICANTE_ID)) P_FABRICANTE_ID = "0";
            if (string.IsNullOrEmpty(P_CTM_EVENTO_ID)) P_CTM_EVENTO_ID = "0";
            if (string.IsNullOrEmpty(P_CVE_DATA)) P_CVE_DATA = Util.retonarAspas(Util.formataData(P_CVE_DATA),true);

            string sql = "SELECT CTM_EVENTO_ID, "+
                         "       EQUIPAMENTO_ID, "+
                         "       EQUIPAMENTO_PAI_ID, "+
                         "       CTM_EVENTO_OPERCAO_ID, "+
                         "       CEO_DESCRICAO, "+
                         "       CTM_CAD_INSPECAO_ID, "+
                         "       CTM_CAD_DIRETIVA_ID, "+
                         "       SERVICO_ID, "+
                         "       SERVICO_DESC, "+
                         "       CTM_RELVOO_ID, "+
                         "       REL_NUM, "+
                         "       CVE_DATA, "+
                         "       CVE_INSTALACAO, "+
                         "       CVE_REMOCAO, "+
                         "       CVE_ULTIMA_REMOCAO, "+
                         "       CVE_TOTAL_TIME " +
                         "FROM FN_EVENTO(" + P_EQUIPAMENTO_ID + ","+P_PNU_PART_NUMBER+","+P_EQU_SERIAL_NUMBER+","+P_FABRICANTE_ID+","+P_CTM_EVENTO_ID+","+P_CVE_DATA+")";


            List<ES_Evento> lista = new List<ES_Evento>();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    ES_Evento item = new ES_Evento();
                    item.CTM_EVENTO_OPERCAO_ID = dr["CTM_EVENTO_OPERCAO_ID"].ToString();
                    item.CTM_EVENTO_ID = dr["CTM_EVENTO_ID"].ToString();
                    item.EQUIPAMENTO_ID = dr["EQUIPAMENTO_ID"].ToString();
                    item.EQUIPAMENTO_PAI_ID = dr["EQUIPAMENTO_PAI_ID"].ToString();
                    item.CTM_EVENTO_OPERCAO_ID = dr["CTM_EVENTO_OPERCAO_ID"].ToString();
                    item.CEO_DESCRICAO = dr["CEO_DESCRICAO"].ToString();
                    item.CTM_CAD_INSPECAO_ID = dr["CTM_CAD_INSPECAO_ID"].ToString();
                    item.CTM_CAD_DIRETIVA_ID = dr["CTM_CAD_DIRETIVA_ID"].ToString();
                    item.SERVICO_ID = dr["SERVICO_ID"].ToString();
                    item.SERVICO_DESC = dr["SERVICO_DESC"].ToString();
                    item.CTM_RELVOO_ID = dr["CTM_RELVOO_ID"].ToString();
                    item.REL_NUM = dr["REL_NUM"].ToString();
                    try { item.CVE_DATA = Util.formataData(dr["CVE_DATA"].ToString(), "dd/MM/yyyy"); }
                    catch { };
                    item.CVE_INSTALACAO = dr["CVE_INSTALACAO"].ToString();
                    item.CVE_REMOCAO = dr["CVE_REMOCAO"].ToString();
                    item.CVE_ULTIMA_REMOCAO = dr["CVE_ULTIMA_REMOCAO"].ToString();
                    item.CVE_TOTAL_TIME = dr["CVE_TOTAL_TIME"].ToString();

                    lista.Add(item);

                }
                return lista;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }

        public ES_Evento _obter_Evento_by_id(
                                                string CTM_EVENTO_ID
                                                )
        {

            if (string.IsNullOrEmpty(CTM_EVENTO_ID)) CTM_EVENTO_ID = "'0'";

            string sql = "SELECT " +
                                  "CTM_EVENTO.CTM_EVENTO_OPERCAO_ID, " +
                                  "CTM_EVENTO.CTM_CAD_INSPECAO_ID, " +
                                  "CTM_EVENTO.CTM_CAD_DIRETIVA_ID, " +
                                  "CTM_EVENTO.CVE_SEQ_EVENTO, " +
                                  "CTM_EVENTO.CVE_STATUS, " +
                                  "CTM_EVENTO.CVE_DATA_INCLUSAO, " +
                                  "CTM_EVENTO.CTM_EVENTO_ID, " +
                                  "CTM_EVENTO.EQUIPAMENTO_ID, " +
                                  "CTM_EVENTO.EQUIPAMENTO_PAI_ID, " +
                                  "CTM_EVENTO.PLANO_MANUTENCAO_ID, " +
                                  "CTM_EVENTO.CVE_DATA, " +
                                  "CTM_EVENTO.CVE_INSTALACAO, " +
                                  "CTM_EVENTO.CVE_INST_SATUS, " +
                                  "CTM_EVENTO.CVE_USUARIO_INS, " +
                                  "CTM_EVENTO.CVE_USUARIO_UPD " +
                            "FROM CTM_EVENTO " +
                            "LEFT JOIN CTM_EVENTO_OPERCAO ON CTM_EVENTO_OPERCAO.CTM_EVENTO_OPERCAO_ID = CTM_EVENTO.CTM_EVENTO_OPERCAO_ID " +
                            "WHERE " +
                            "      (CTM_EVENTO.CTM_EVENTO_ID = " + CTM_EVENTO_ID + "  OR " + CTM_EVENTO_ID + " = '0') ";

            ES_Evento item = new ES_Evento();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    item.CTM_EVENTO_OPERCAO_ID = dr["CTM_EVENTO_OPERCAO_ID"].ToString();
                    item.CTM_CAD_INSPECAO_ID = dr["CTM_CAD_INSPECAO_ID"].ToString();
                    item.CTM_CAD_DIRETIVA_ID = dr["CTM_CAD_DIRETIVA_ID"].ToString();
                    item.CVE_SEQ_EVENTO = dr["CVE_SEQ_EVENTO"].ToString();
                    item.CVE_STATUS = dr["CVE_STATUS"].ToString();
                    item.CVE_DATA_INCLUSAO = dr["CVE_DATA_INCLUSAO"].ToString();
                    item.CTM_EVENTO_ID = dr["CTM_EVENTO_ID"].ToString();
                    item.EQUIPAMENTO_ID = dr["EQUIPAMENTO_ID"].ToString();
                    item.EQUIPAMENTO_PAI_ID = dr["EQUIPAMENTO_PAI_ID"].ToString();
                    item.PLANO_MANUTENCAO_ID = dr["PLANO_MANUTENCAO_ID"].ToString();
                    item.CVE_DATA = dr["CVE_DATA"].ToString();
                    item.CVE_INSTALACAO = dr["CVE_INSTALACAO"].ToString();
                    item.CVE_INST_SATUS = dr["CVE_INST_SATUS"].ToString();
                    item.CVE_USUARIO_INS = dr["CVE_USUARIO_INS"].ToString();
                    item.CVE_USUARIO_UPD = dr["CVE_USUARIO_UPD"].ToString();

                }
                return item;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }

        #region metodos padrão gerador
        

        public void _inserir_Evento(string CTM_EVENTO_OPERCAO_ID, string CTM_CAD_INSPECAO_ID, string CTM_CAD_DIRETIVA_ID, string CVE_SEQ_EVENTO, string CVE_STATUS,string CVE_DATA_INCLUSAO,string CTM_EVENTO_ID,string EQUIPAMENTO_ID,string EQUIPAMENTO_PAI_ID,string PLANO_MANUTENCAO_ID,string CVE_DATA,string CVE_INSTALACAO,string CVE_INST_SATUS,string CVE_USUARIO_INS, string CVE_USUARIO_UPD)
        {

            string sql = " INSERT INTO CTM_EVENTO " +
                         "      ( " +
                         "          CTM_EVENTO_OPERCAO_ID          , " +
                         "          CTM_CAD_INSPECAO_ID            , " +
                         "          CTM_CAD_DIRETIVA_ID            , " +
                         "          CVE_SEQ_EVENTO                 , " +
                         "          CVE_STATUS                     , " +
                         "          CVE_DATA_INCLUSAO              , " +
                         "          EQUIPAMENTO_ID                 , " +
                         "          EQUIPAMENTO_PAI_ID             , " +
                         "          CTM_PLANO_MANUTENCAO_ID            , " +
                         "          CVE_DATA                       , " +
                         "          CVE_INSTALACAO                 , " +
                         "          CVE_INST_SATUS                 , " +
                         "          CVE_USUARIO_INS                , " +
                         "          CVE_USUARIO_UPD                  " +
                 "      )" +
                 "  VALUES " +
                 "      ( " +
                              Util.retonarAspas(CTM_EVENTO_OPERCAO_ID, true) + ", " +
                              Util.retonarAspas(CTM_CAD_INSPECAO_ID, true) + ", " +
                              Util.retonarAspas(CTM_CAD_DIRETIVA_ID, true) + ", " +
                              Util.retonarAspas(CVE_SEQ_EVENTO, true) + ", " +
                              Util.retonarAspas(CVE_STATUS, true) + ", " +
                              Util.retonarAspas(CVE_DATA_INCLUSAO, true) + ", " +
                              Util.retonarAspas(EQUIPAMENTO_ID, true) + ", " +
                              Util.retonarAspas(EQUIPAMENTO_PAI_ID, true) + ", " +
                              Util.retonarAspas(PLANO_MANUTENCAO_ID, true) + ", " +
                              Util.retonarAspas(Util.formataData(CVE_DATA), true) + ", " +
                              Util.retonarAspas(CVE_INSTALACAO, true) + ", " +
                              Util.retonarAspas(CVE_INST_SATUS, true) + ", " +
                              Util.retonarAspas(CVE_USUARIO_INS, true) + ", " +
                              Util.retonarAspas(CVE_USUARIO_UPD, true) +
                 "      )";
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }

        public void _atualizar_Evento(string CTM_EVENTO_OPERCAO_ID,string CTM_CAD_INSPECAO_ID,string CTM_CAD_DIRETIVA_ID,string CVE_SEQ_EVENTO,string CVE_STATUS,string CVE_DATA_INCLUSAO,string CTM_EVENTO_ID,string EQUIPAMENTO_ID,string EQUIPAMENTO_PAI_ID,string PLANO_MANUTENCAO_ID,string CVE_DATA,string CVE_INSTALACAO,string CVE_INST_SATUS,string CVE_USUARIO_INS,string CVE_USUARIO_UPD)
        {

            string sql = " UPDATE CTM_EVENTO SET " +
                         "      CTM_EVENTO_OPERCAO_ID           = " + Util.retonarAspas(CTM_EVENTO_OPERCAO_ID, true) + ", " +
                         "      CTM_CAD_INSPECAO_ID             = " + Util.retonarAspas(CTM_CAD_INSPECAO_ID, true) + ", " +
                         "      CTM_CAD_DIRETIVA_ID             = " + Util.retonarAspas(CTM_CAD_DIRETIVA_ID, true) + ", " +
                         "      CVE_SEQ_EVENTO                  = " + Util.retonarAspas(CVE_SEQ_EVENTO, true) + ", " +
                         "      CVE_STATUS                      = " + Util.retonarAspas(CVE_STATUS, true) + ", " +
                         "      CVE_DATA_INCLUSAO               = " + Util.retonarAspas(CVE_DATA_INCLUSAO, true) + ", " +
                         "      EQUIPAMENTO_ID                  = " + Util.retonarAspas(EQUIPAMENTO_ID, true) + ", " +
                         "      EQUIPAMENTO_PAI_ID              = " + Util.retonarAspas(EQUIPAMENTO_PAI_ID, true) + ", " +
                         "      CTM_PLANO_MANUTENCAO_ID             = " + Util.retonarAspas(PLANO_MANUTENCAO_ID, true) + ", " +
                         "      CVE_DATA                        = " + Util.retonarAspas(Util.formataData(CVE_DATA), true) + ", " +
                         "      CVE_INSTALACAO                  = " + Util.retonarAspas(CVE_INSTALACAO, true) + ", " +
                         "      CVE_INST_SATUS                  = " + Util.retonarAspas(CVE_INST_SATUS, true) + ", " +
                         "      CVE_USUARIO_INS                 = " + Util.retonarAspas(CVE_USUARIO_INS, true) + ", " +
                         "      CVE_USUARIO_UPD                 = " + Util.retonarAspas(CVE_USUARIO_UPD, true) +
                         " WHERE CTM_EVENTO_ID =  " + CTM_EVENTO_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }

        public void _excluir_Evento(string CTM_EVENTO_ID)
        {
            string sql = "DELETE FROM CTM_EVENTO WHERE CTM_EVENTO_ID = " + CTM_EVENTO_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }
        
        #endregion

        public void _sp_ctm_evento_inserir( string CTM_EVENTO_ID,
                                            string EQUIPAMENTO_ID,                                                                                        
                                            string CTM_EVENTO_OPERCAO_ID,
                                            string CTM_CAD_INSPECAO_ID,
                                            string CTM_CAD_DIRETIVA_ID,
                                            string CVE_DATA,
                                            string CVE_INSTALACAO,                                            
                                            string CVE_INST_SATUS ,
                                            string CVE_STATUS ,
                                            string CVE_USUARIO_INS,
                                            string P_CVE_OBS,
                                            string P_CTM_EVENTO_CAUSA_ID,
                                            string P_CTM_LANCAMENTO_ID,
                                            string P_CTM_RELVOO_ID
            )
        {

            string sql = " EXECUTE PROCEDURE SP_CTM_EVENTO_INSERIR("+ CTM_EVENTO_ID +", "+
                         "                                         "+ EQUIPAMENTO_ID +", "+
                         "                                         "+  Util.retonarNull(CTM_EVENTO_OPERCAO_ID) +", "+
                         "                                         "+  Util.retonarNull(CTM_CAD_INSPECAO_ID) +", "+
                         "                                         "+  Util.retonarNull(CTM_CAD_DIRETIVA_ID) +", "+
                         "                                         NULL, "+//P_CTM_EQUIPAMENTO_UNIDADE_ID 
                         "                                         "+  Util.retonarAspas(Util.formataData(CVE_DATA),true) +", "+
                         "                                         "+  Util.retonarAspas(CVE_INSTALACAO) +", "+
                         "                                         "+  Util.retonarAspas(CVE_INST_SATUS) +", "+
                         "                                         "+  Util.retonarAspas(CVE_STATUS) +", " +
                         "                                         "+  Util.retonarAspas(CVE_USUARIO_INS,true) +", " +
                         "                                         " + Util.retonarAspas(P_CVE_OBS, true) + ", " +
                         "                                         " + Util.retonarNull(P_CTM_EVENTO_CAUSA_ID) + ", " +
                         "                                         " + Util.retonarNull(P_CTM_LANCAMENTO_ID) + ", " +
                         "                                         " + Util.retonarNull(P_CTM_RELVOO_ID) + ")";
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }


        public void sp_ctm_evento_excluir(string P_CTM_EVENTO_ID,
                                            string P_CTM_EQUIPAMENTO_UNIDADE_ID,
                                            string P_CVE_CAUSA_REMOCAO,
                                            string P_CVE_USUARIO_DELETE)
        {

            string sql = " EXECUTE PROCEDURE SP_CTM_EVENTO_EXCLUIR (" + Util.retonarNull(P_CTM_EVENTO_ID) + ", " +
                         "                                          " + Util.retonarNull(P_CTM_EQUIPAMENTO_UNIDADE_ID) + ", " +
                         "                                          " + Util.retonarAspas(P_CVE_CAUSA_REMOCAO) + ", " +
                         "                                          " + Util.retonarNull(P_CVE_USUARIO_DELETE) + ")";
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }

        #endregion
    }
}
